﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ModeloMagiPack.Entidades;
using BLLMagiPack.Managers;
using DALMagiPack.Funcionalidad;

namespace Migrador
{
    class Program
    {
        static void Main(string[] args)
        {
            ConsoleKey pija = ConsoleKey.D0;

            do
            {
                Console.Clear();
                Console.Title = "MagiPACK Migrador";
                Console.WriteLine("1. Aplicar movimiento con múltiples cheques");
                ConsoleKeyInfo tecla = Console.ReadKey();

                switch (tecla.Key)
                {
                    case ConsoleKey.D1:
                        MovimientosConMultiplesCheques();
                        break;

                    default:
                        break;
                }
                Console.WriteLine();
                Console.WriteLine("Volver? S/N");
                pija = Console.ReadKey().Key;
            } while (pija == ConsoleKey.S);
        }

        public static void MovimientosConMultiplesCheques()
        {
            Console.Clear();
            Console.WriteLine("Buscando movimientos...");

            DALMagiPack<Migrador.Entidades.Movimiento> dal = new DALMagiPack<Entidades.Movimiento>();
            List<Migrador.Entidades.Movimiento> movimientos = dal.Traer(new Entidades.Movimiento(), new List<Filtro>());
            BLLChequeMovimiento bllChequeMovimiento = new BLLChequeMovimiento();

            Console.WriteLine("Movimientos: " + movimientos.Count);
            Console.WriteLine("Migrando...");
            int movimientosMigrados = 0;

            foreach (Migrador.Entidades.Movimiento movimiento in movimientos)
            {
                if (movimiento.IdCheque != null && !bllChequeMovimiento.Existe((int)movimiento.IdMovimiento, (int)movimiento.IdCheque))
                {
                    bllChequeMovimiento.Asignar((int)movimiento.IdMovimiento, (int)movimiento.IdCheque);
                    movimientosMigrados++;
                }
            }

            Console.WriteLine("FINALIZADO");
            Console.WriteLine("Movimientos migrados: " + movimientosMigrados);
        }
    }
}
